#include "unistd.h"
#include "sys/time.h"
#include "stdio.h"

/*
一个线程串行执行多个长时间的计算任务VS多个线程并行执行多个长时间的计算任务
*/


// 这是个求num的平方的函数      耗时5s
int calc_sqr(int num)
{
    sleep(1);   
    return num * num;
}

int main(int argc, char const *argv[])
{
    int item[5] = {1,2,3,4,5};
    int sqrs[5];
    
    // 串行执行
    struct timeval start, end;
    gettimeofday(&start, NULL);

    for(int i = 0; i < 5; i++)
    {
        sqrs[i] = calc_sqr(item[i]);
    }

    // 计算串行执行的时间
    gettimeofday(&end, NULL);
    long timeuse = 1000000 * (end.tv_sec - start.tv_sec) + end.tv_usec - start.tv_usec;
    printf("串行执行时间: %ld us\n", timeuse);

    return 0;
}